/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved.
 */

package com.device.idea.demo.view.widget;

import android.view.View;
import android.widget.PopupWindow;

import androidx.annotation.IntDef;
import androidx.annotation.NonNull;

import com.device.idea.demo.constant.ToolbarPosition;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * 基于锚点视图的PopupWindow
 *
 * @since 2021-04-07
 */
public interface IUiPopupWindow {
    @IntDef({CENTER, HORIZONTAL_START, HORIZONTAL_END, HORIZONTAL_ALIGN_START, HORIZONTAL_ALIGN_END})
    @Retention(RetentionPolicy.SOURCE)
    @interface HorizontalPosition {
    }

    @IntDef({CENTER, VERTICAL_ABOVE, VERTICAL_BELOW, VERTICAL_ALIGN_TOP, VERTICAL_ALIGN_BOTTOM})
    @Retention(RetentionPolicy.SOURCE)
    @interface VerticalPosition {
    }

    /**
     * 居中
     */
    int CENTER = 0;

    /**
     * 正上方
     */
    int VERTICAL_ABOVE = 1;

    /**
     * 正下方
     */
    int VERTICAL_BELOW = 2;

    /**
     * 垂直对齐顶部
     */
    int VERTICAL_ALIGN_TOP = 3;

    /**
     * 垂直对齐底部
     */
    int VERTICAL_ALIGN_BOTTOM = 4;

    /**
     * 水平靠左
     */
    int HORIZONTAL_START = 5;

    /**
     * 水平靠右
     */
    int HORIZONTAL_END = 6;

    /**
     * 水平对齐启动方向
     */
    int HORIZONTAL_ALIGN_START = 7;

    /**
     * 水平对齐结束
     */
    int HORIZONTAL_ALIGN_END = 8;

    /**
     * 显示基于锚点View的popupWindow
     *
     * @param anchorView 锚点View
     * @param toolbarPosition 工具栏位置
     */
    void show(@NonNull View anchorView, @NonNull ToolbarPosition toolbarPosition);

    /**
     * 隐藏popupWindow
     */
    void dismiss();

    /**
     * 获取PopUpWindow
     *
     * @return PopupWindow悬浮窗实例
     */
    PopupWindow getWindow();

    /**
     * 设置是否关闭白板
     *
     * @param isCloseAfterSave 是否关闭白板
     */
    void setIsCloseAfterSave(boolean isCloseAfterSave);
}
